map 深度相等的条件:

    1. 1、都为 nil
    2. 2、非空、长度相等,指向同一个 map 实体对象
    3. 3、相应的 key 指向的 value “深度”相等

    直接将使用 map1 == map2 是错误的。这种写法只能比较 map 是否为 nil。

    1. package main
    2. import "fmt"
    3. func main() {
    4. var m map[string]int
    5. var n map[string]int
    6. fmt.Println(m == nil)
    7. fmt.Println(n == nil)
    8. // 不能通过编译
    9. //fmt.Println(m == n)
    10. }

    输出结果:

    1. true
    2. true

    因此只能是遍历map 的每个元素,比较元素是否都是深度相等。